package frsf.cidisi.exercise.tp2.situationCalculus.actions;

import frsf.cidisi.exercise.tp2.situationCalculus.actions.ConectorLog;
import frsf.cidisi.exercise.tp2.situationCalculus.EstadoActualArqueologo;
import frsf.cidisi.exercise.tp2.situationCalculus.EstadoActualIsla;
import frsf.cidisi.faia.agent.situationcalculus.SituationCalculusAction;
import frsf.cidisi.faia.state.AgentState;
import frsf.cidisi.faia.state.EnvironmentState;

public class AvanzarAAragaey extends SituationCalculusAction {

	
	private ConectorLog log = new ConectorLog();
	private int nroAldea = 1;
	private int cantidadAldeas;
	private String[] nombreAldeas = {"Aragaey","Ase","Bresol","Bulovoe","Cabe","Cenede","Ergintone","Icaedur","Mixocu","Peregay","Vinizaile"};
	
    @Override
    public EnvironmentState execute(AgentState ast, EnvironmentState est) {

    	EstadoActualIsla environmentState = (EstadoActualIsla) est;
        EstadoActualArqueologo agState = ((EstadoActualArqueologo) ast);

       	agState.setPosicionAgente(getNroAldea());
        environmentState.setposicionAgente(agState.getPosicionAgente());
      	
       	//TODO: LOG Real Execute
       	String mensaje = "(Ejecuta) => Avance a la aldea: "+nombreAldeas[agState.getPosicionAgente()-1];
       	System.out.println(mensaje);
       	log.log(mensaje);
          
        return environmentState;
    }

    @Override
    public String toString() {
        return "avanzarA"+nombreAldeas[nroAldea-1];
    }

	public int getNroAldea() {
		return nroAldea;
	}

	public void setNroAldea(int nroAldea) {
		this.nroAldea = nroAldea;
	}

	public void setLog(ConectorLog log) {
		this.log = log;
	}

	public ConectorLog getLog() {
		return log;
	}

	public void setCantidadAldeas(int cantidadAldeas) {
		this.cantidadAldeas = cantidadAldeas;
	}

	public int getCantidadAldeas() {
		return cantidadAldeas;
	}

	public void setNombreAldeas(String[] nombreAldeas) {
		this.nombreAldeas = nombreAldeas;
	}

	public String[] getNombreAldeas() {
		return nombreAldeas;
	}
    
    
}

